(define *free-vars*
  `(
    (number? ,number?)
    (cons ,cons)
    (car ,car)
    (cdr ,cdr)
    (null? ,null?)
    (set-car! ,set-car!)
    (set-cdr! ,set-cdr!)
    (sys-display ,display)
    (rxmatch ,rxmatch)
    (regexp? ,regexp?)
    (regexp->string ,regexp->string)
    (rxmatch-start ,rxmatch-start)
    (rxmatch-end ,rxmatch-end)
    (rxmatch-after ,rxmatch-after)
    (rxmatch-before ,rxmatch-before)
    (rxmatch-substring ,rxmatch-substring)
    (make-string ,make-string)
    (string-set! ,string-set!)
    (string-length ,string-length)
    (string->symbol ,string->symbol)
    (string->number ,string->number)
    (string-append ,string-append)
    (string-split ,string-split)
    (number->string ,number->string)
    (reverse ,reverse)
    (eof-object? ,eof-object?)
    (read-char ,read-char)
    (char=? ,char=?)
    (string? ,string?)
    (sys-getenv ,sys-getenv)
    (equal? ,equal?)
    (open-string-input-port ,open-input-string)
    (sys-open-output-string ,open-output-string)
    (sys-port-seek ,port-seek)
    (open-output-file ,open-output-file)
    (close-output-port ,close-output-port)
    (digit->integer ,digit->integer)
    (get-remaining-input-string ,get-remaining-input-string)
    (sys-readdir ,sys-readdir)
    (file-exists? ,file-exists?)
    (sys-get-output-string ,get-output-string)
    (string->regexp ,string->regexp)
    (char->integer ,char->integer)
    (integer->char ,integer->char)
    (format ,format)
    (current-input-port ,current-input-port)
    (current-output-port ,current-output-port)
    (set-current-input-port! ,current-input-port)
    (set-current-output-port! ,current-output-port)
    (char? ,char?)
    (write ,write)
    (gensym ,gensym)
    (string=? ,string=?)
    (vector? ,vector?)
    (list? ,list?)
    (memq ,memq)
    (eq? ,eq?)
    (member ,member)
    (boolean? ,boolean?)
    (symbol->string ,symbol->string)
    (string-ref ,string-ref)
    (error ,error)
    (get-timeofday ,(lambda () (receive (a b) (sys-gettimeofday) (cons a b))))
    (make-eq-hashtable ,(lambda a (make-hash-table 'eq?)))
    (hash-table-set! ,hash-table-put!)
    (hash-table-ref ,hash-table-get)
    (hash-table-keys ,hash-table-keys)
;    (command-line ,command-line)
    (current-error-port ,current-error-port)
    (values ,make-valuez)
    (vm/apply ,vm/apply)
    (pair? ,pair?)
    (init-library-table, init-library-table) ;; for test
    (map10, map)
    (find10, find)
    (make-custom-binary-input-port, (lambda (id read! get-position set-position! close) (display "make-custom-binary-input-port not implemented")))
    (get-u8 (lambda (port) (display "get-u8 not implemented")))
    (bytevector-u8-set! (lambda (bv i v) (display "bytevector-u8-set! not implemented")))
    (transcoded-port,  (lambda (binary-port transcoder) (display "bytevector-u8-set! not implemented")))
    (utf-8-codec, (lambda () (display "utf-8-codec not implemented")))
    (make-transcoder, (lambda (codec) (display "make-transcoder not implemented")))
    (eof-object, (lambda () (if #f #f)))
    (sys-open-bytevector-output-port, (lambda (transcoder) (display "sys-open-bytevector-output-port not implemented")))
    (sys-get-bytevector ,(lambda (port) (display "sys-get-bytevector not implemented")))
    (bytevector-length ,(lambda (port) (display "bytevector-length not implemented")))
    (bytevector-u8-ref ,(lambda (bv i) (display "bytevector-u8-ref not implemented")))
    (standard-input-port ,standard-input-port)
    (get-bytevector-n ,(lambda (port count) (display "get-bytevector-n not implemented")))
    (utf8->string ,(lambda (port count) (display "utf-8->string not implemented")))
    (open-file-output-port ,open-output-file)
    (open-file-input-port ,open-input-file)
    (close-input-port ,close-input-port)
    (vector ,vector)
    (regexp-replace ,regexp-replace)
    (regexp-replace-all ,regexp-replace-all)
    (source-info ,(lambda (x) #f))
    (errorf ,errorf)
    ))

